<?php

namespace Lib\WS;

class Client extends \SoapClient {

	public function __construct($sWSDL = null, $aOption = array()) {
		if ($sWSDL || $aOption) {
			try {
				parent::__construct ( $sWSDL, $aOption );
			} catch ( \SoapFault $e ) {
			}
		}
	}

	/**
	 * 通过WSDL调用接口
	 *
	 * @param 地址 $sUrl        	
	 * @param 函数名 $sFunctionName        	
	 * @param 参数 $aParam        	
	 * @return mixed
	 */
	public function wsdl($sUrl, $sFunctionName, $aParam) {
		try {
			parent::__construct ( $sUrl );
			return parent::__call ( $sFunctionName, $aParam );
		} catch ( \SoapFault $e ) {
		}
	}

	/**
	 * 通过非WSDL调用接口
	 *
	 * @param 地址 $sUrl        	
	 * @param 函数名 $sFunctionName        	
	 * @param 参数 $aParam        	
	 * @return mixed
	 */
	public function call($sUrl, $sFunctionName, $aParam) {
		$sUri = dirname ( $sUrl ) . '/';
		try {
			parent::__construct ( null, array (
					'location' => $sUrl,
					'uri' => $sUri 
			) );
			return parent::__soapCall ( $sFunctionName, $aParam );
		} catch ( \SoapFault $e ) {
		}
	}
}

?>